/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package module;

import com.google.inject.*;
import model.RealMachine;
import model.RealMachineProvider;
import model.TestScript;
import model.TestScriptProvider;
import model.VMMachine;
import model.VMMachineProvider;

/**
 *
 * @author think
 */
public class MyModule extends AbstractModule{
//    private String commandCmd;
//
//    public MyModule(String cmd){
//        this.commandCmd = cmd;
//    }


    @Override
    protected void configure() {

//        bind(CommandFactory.class).toProvider(FactoryProvider.newFactory(CommandFactory.class, Command.class));
//        bind(Executable.class).annotatedWith(Names.named("command")).to(Command.class);
//        bind(Executable.class).annotatedWith(Names.named("pipeline")).to(PipeLineCommand.class);
//        bind(String.class).toProvider(new CommandProvider(this.commandCmd));

        bind(VMMachine.class).toProvider(VMMachineProvider.class);
        bind(RealMachine.class).toProvider(RealMachineProvider.class);
//        bind(TestScript.class).toProvider(TestScriptProvider.class);


//        bind(STAFHandle.class).toProvider(new Provider<STAFHandle>(){
//            private String name;
//
//            public STAFHandle get() {
//                STAFHandle handle = null;
//                try {
//                    handle = new STAFHandle(name);
//                } catch (STAFException ex) {
//                    Logger.getLogger(MyModule.class.getName()).log(Level.SEVERE, null, ex);
//                } finally {
//                    return handle;
//                }
//            }
//
//        });


    }

}
